;:sys36864
	;.opt oo
;disk spion run 2/86
;abgetippt 160486
setpar	=$ffba
setnam	=$ffbd
open	=$ffc0
close	=$ffc3
chkin	=$ffc6
chkout	=$ffc9
clrch	=$ffcc
input	=$ffcf
print	=$ffd2
lnprt	=$bdcd
setcrsr	=$fff0
tmp	=4
keys	=198
blank	=$ab3f
zeile	=214
keybuf	=631
status	=$90
lf	=$aad7
quotflag	=$d4
rvsflag	=$c7
ramtop	=$37
taste	=$c5
temp	=$22
temp2	=$fa
device	=$f9
text	=$33c
ct	=temp2+4
count	=temp+3
cr	=$d
farb1	=$d020
farb2	=$d021
farb3	=646
clrscr	=$e544
frmnum	=$ad8a
int	=$b7f7
chrptr	=$7a
lo	=20
rvson	="\x12"
prompt	="]"
stop	=$3f
spc	=$3c
return	=1
ioflag	=157
quote	=34
pnt	=$fc
	*= 30000
	jmp goto
message	.byte "\x0e\x08Disk Spion 3.2"
	.byte " (c) by \x12NSS\x92 and \x12MB Soft"
	.byt cr,0
cmds	.byte "@xvmrt?fe:w_!$dpncaAsh"
	.byt 0
dirch	.byt "#"
ertxt1	.byt cr
	.byte "\x91\x1d\x1d\x12?"
	.byt 0
ertxt2	.byt cr
	.byte "\x91\x1d\x1d\x12??"
	.byt 0
ptext	.byte "b-p 8 0"
	.byt 0
rtext	.byte "u1:8 0 00 00"
	.byt 0
memwrite	.byte "m-w"
	.byt 119,0,2
fab1	.byt 0,1,14,9,6,11,14,-1
fab2	.byt 0,1,6,9,6,11,15
fab3	.byt 13,0,14,7,7,12,9
pc	    .word 0
latch	 .byt 0
endpnt	.word 0
dez	   .byt 0
colnr	 .byt 0
rflag	 .byt 0
eflag	 .byt 0
track	 .byt 0
sector	.byt 0
from	  .byt 0
to	    .byt 0
addr	.word error,exit,void,memory,read,dts,show,fill
	.word execute,change,write,color,todez,tohex,disass
	.word put,number,changenr,hextoasc,asctohex
	.word goto,hunt
mnm	.byte "ldxldytxabeqbnebccjmpdeybrkrlacra???seinx"
	.byte "sedexseclcpybitaxdecmphabvcliscrortinclvbminy"
	.byte "rradcldaaxbvstaynoplaxbplphpjsrtsxrolsreoraslo"
	.byte "stxsbcstyandcpx"
adr	.byt 1,11,1,10,3,3,3,3,1,2,4,1,5,5,5,5,12,10,1,11
	.byt 3,6,6,6,1,9,1,9,5,8,8,8,5,11,1,1,3,3,3,3,1,2,4,1
	.byt 5,5,5,5,12,10,1,10,3,6,6,6,1,9,1,9,5,8,8,8,1,11,1
	.byt 11,3,3,3,3,1,2,4,1,5,5,5,5,12,10,1,10,3,6,6,6
	.byt 1,9,1,9,5,8,8,8,1,11,1,11,3,3,3,3,1,2,4,1
	.byt 13,5,5,5,12,10,1,10,3,6,6,6,1,9,1,9,5,8,8,8
	.byt 1,11,1,11,3,3,3,3,1,1,1,1,5,5,5,5,12,10,1
	.byt 1,6,6,7,7,1,9,1,1,1,8,1,1,2,11,2,11,3,3
	.byt 3,3,1,2,1,1,5,5,5,5,12,10,1,10,6,6,7,7,1
	.byt 9,1,1,8,8,9,9,2,11,1,11,3,3,3,3,1,2,1
	.byt 1,5,5,5,5,12,10,1,10,3,6,6,6,1,9,1,9,5
	.byt 8,8,8,2,11,1,11,3,3,3,3,1,2,1,1,5,5,5,5,12
	.byt 10,1,10,1,6,6,6,1,9,1,9,1,8,8,5
adrmod	.word 0,no,direkt,zeropage,akku,absolut,zpx
	.word zpy,absx,absy,idridz,idzidr,relativ,indirekt
txt	.byt $18,$7e,$1e,$81,$66,$7e,$80,$81
	.byt $6f,$7e,$80,$21,$66,$7e,$80,$81
	.byt $6c,$7e,$1e,$81,$66,$7e,$80,$81
	.byt $30,$7e,$66,$81,$66,$7e,$80,$81
	.byt $72,$8d,$1e,$21,$35,$8d,$78,$1b
	.byt $6d,$8d,$78,$21,$35,$8d,$78,$1b
	.byt $51,$8d,$1e,$1b,$66,$8d,$78,$1b
	.byt $2e,$8d,$66,$1b,$66,$8d,$78,$1b
	.byt $4a,$7d,$1e,$7b,$66,$7d,$7e,$7b
	.byt $3e,$7d,$7a,$21,$12,$7d,$7a,$7b
	.byt $41,$7d,$1e,$7b,$66,$7d,$7a,$7b
	.byt $43,$7d,$66,$7b,$66,$7d,$7a,$7b
	.byt $74,$58,$21,$56,$66,$58,$48,$56
	.byt $68,$58,$48,$21,$12,$58,$48,$56
	.byt $60,$58,$1e,$56,$66,$58,$48,$56
	.byt $24,$58,$66,$56,$66,$58,$48,$56
	.byt $21,$62,$21,$5d,$8a,$62,$84,$5d
	.byt $15,$21,$06,$21,$8a,$62,$84,$5d
	.byt $0f,$62,$1e,$21,$8a,$62,$84,$5d
	.byt $8b,$62,$85,$21,$21,$62,$21,$21
	.byt $03,$5b,$00,$69,$03,$5b,$00,$69
	.byt $63,$5b,$37,$21,$03,$5b,$00,$69
	.byt $88,$5b,$1e,$69,$03,$5b,$00,$69
	.byt $4e,$5b,$75,$21,$03,$5b,$00,$69
	.byt $32,$3c,$1e,$8f,$32,$3c,$3a,$8f
	.byt $53,$3c,$2b,$21,$32,$3c,$3a,$8f
	.byt $0c,$3c,$1e,$8f,$66,$3c,$3a,$8f
	.byt $5a,$3c,$66,$8f,$66,$3c,$3a,$8f
	.byt $90,$87,$21,$45,$90,$87,$4c,$45
	.byt $26,$87,$66,$21,$90,$87,$4c,$45
	.byt $09,$87,$1e,$45,$21,$87,$4c,$45
	.byt $29,$87,$66,$45,$21,$87,$4c,$45
cmdlist	.byt cr
	.byte "\x12\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4DISK\xa4SPY\xa4VERSION\xa43.2\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4"
	.byte "\xa4\xa4\xa4\xa4\xa4Written\xa4by\xa4M.\xa4Boeing,\xa4RUN\xa42/86\xa4\xa4\xa4\xa4\xa4"
	.byte "\xa4\xa4\xa4\xa4\xa4\xa4Improved\xa4by\xa4N.\xa4Heusler\xa4\xa44/86\xa4\xa4\xa4\xa4\xa4\xa4"
	.byte "\x92\x11               Commands :"
	.byt cr
	.byte "\x11@ errorchannel      @$ dir"
	.byt cr
	.byte "@... send cmd       s restart"
	.byt cr
	.byte "x exit              ? help"
	.byt cr
	.byte "r read track        w write track"
	.byt cr
	.byte "m show track        : change track"
	.byt cr
	.byte "f fill              v void"
	.byt cr
	.byte "d disasembly        t last track"
	.byt cr
	.byte "a hex -> ascii      A ascii -> hex"
	.byt cr
	.byte "! hex -> decimal    $ decimal -> hex"
	.byt cr
	.byte "e execute block     _ colour"
	.byt cr
	.byte "p put               h hunt"
	.byt cr
	.byte "c change device#    n change/show dev."
	.byt cr,0
goto	jsr exit
	lda #8
	sta device
	lda #64
	sta ioflag
	ldx #6
	jsr ue
	lda #<message
	ldy #>message
	jsr strout
	lda #3
	sta keys
	lda #"@"
	sta keybuf
	lda #cr
	sta keybuf+1
	lda #"?"
	sta keybuf+2
g	lda #15
	ldx device
	tay
	jsr setpar
	lda #0
	jsr setnam
	jsr open
	jmp mainloop
b	lda #8
	ldx device
	tay
	jsr setpar
	lda #1
	ldx #<dirch
	ldy #>dirch
	jsr setnam
	jmp open
show	lda #<cmdlist
	ldy #>cmdlist
	jsr strout
	jmp mainloop
nline	jsr lf
	lda #prompt
	jmp print
kx	lda #","
	jsr print
	lda #"x"
	jmp print
ky	lda #","
	jsr print
	lda #"y"
	.byt $2c
kauf	lda #"("
	.byt $2c
kzu	lda #")"
	.byt $2c
up	lda #"\x91"
	.byt $2c
dollar	lda #"$"
	jmp print
exit	lda #15
	jsr close
	lda #8
	jmp close
bltest	lda text+1
	and #" "
	cmp #" "
	rts
chartest	cmp #" "
	bcc punkt
	cmp #$80
	bcc norm
	cmp #$a0
	bcc punkt
norm	lda #1
	sta rvsflag
	lda dez
	rts
punkt	lda #0
	sta rvsflag
	lda #"."
	rts
senduser	lda #<rtext
	ldy #>rtext
strout	sta tmp
	sty tmp+1
	ldy #0
label	lda (tmp),y
	beq label2
	jsr print
	inc tmp
	bne label
	inc tmp+1
	bne label
label2	rts
mainloop	jsr nline
	ldx #0
next	jsr input
	sta text,x
	inx
	cpx #$29
	bcs cont
	cmp #cr
	bne next
cont	stx ct
	ldx #0
	lda text
	cmp #prompt
	bne test
	ldy #1
loop0	lda text,y
	sta text-1,y
	iny
	cpy ct
	bne loop0
	dec ct
test	lda cmds,x
	beq end
	lda text
	cmp cmds,x
	beq exec
weiter	inx
	jmp test
exec	txa
	asl
	tax
	lda addr,x
	sta temp
	lda addr+1,x
	sta temp+1
	jmp (temp)
end	lda text
	cmp #cr
	beq noerror
	lda #<ertxt1
	ldy #>ertxt1
errout	jsr strout
noerror	jmp mainloop
mistake	lda #<ertxt2
	ldy #>ertxt2
	bne errout
error	jsr lf
	lda text+1
	cmp #"$"
	beq catalog
	cmp #cr
	beq dstatus
	jmp sendcmd
dstatus	jsr clrch
	ldx #15
	jsr chkin
	lda #rvson
	jsr print
loop1	jsr input
	jsr print
	cmp #cr
	bne loop1
	jsr clrch
	jmp mainloop
catalog	lda #1
	ldx device
	ldy #0
	jsr setpar
	lda ct
	sec
	sbc #2
	ldx #<text+1
	ldy #>text+1
	jsr setnam
	jsr open
	ldx #1
	jsr chkin
	lda #0
	sta status
	ldy #3
loop2	sty temp
	jsr input
	sta temp+1
	ldy status
	bne r2
	jsr input
	ldy status
	bne r2
	ldy temp
	dey
	bne loop2
	pha
	lda taste
	cmp #stop
	bne c
	pla
	clc
	bcc r2
c	jsr blank
	pla
	ldx temp+1
	jsr lnprt
	jsr blank
loop3	jsr input
	ldy status
	bne r2
	tax
	beq newline
	jsr print
	bne loop3
newline	jsr lf
	lda taste
	cmp #spc
	beq waitloop
goloop	ldy #2
	bne loop2
waitloop	lda #0
	sta keys
w1	lda taste
	cmp #return
	bne w1
	beq goloop
r2	jsr clrch
	lda #1
	jsr close
	jmp mainloop
sendcmd	jsr clrch
	ldx #15
	jsr chkout
	ldx #0
loop4	lda text+1,x
	cmp #cr
	beq r3
	jsr print
	inx
	bne loop4
r3	jsr clrch
	jmp dstatus
void	lda rflag
	beq r9
	lda #0
	tax
loop9	sta block,x
	inx
	bne loop9
r9	jmp mainloop
memory	lda rflag
	bmi tst
	jmp mainloop
tst	lda ct
	cmp #2
	bne cont5
	ldx #-1
	stx to
	inx
	stx from
	jmp dm
cont5	cmp #5
	bne cont6
	ldx #-1
	stx to
	ldy #2
	jsr hexdez
	sta from
	jmp dm
cont6	ldy #2
	jsr hexdez
	sta from
	ldy #5
	jsr hexdez
	sta to
dm	ldx #0
	stx count
	stx eflag
	ldx from
	sta temp2
	lda to
	cmp from
	bcc r13
cont4	jsr nline
	lda #":"
	jsr print
	stx dez
	jsr dezhex
	jsr blank
	jsr blank
	txa
	pha
	jsr hexdump
	pla
	tax
	jsr ascdump
	lda taste
	cmp #stop
	beq r11
	lda eflag
	beq cont4
r11	lda block
	beq r13
	jsr nline
	lda #"r"
	jsr print
	jsr blank
	lda block
	sta dez
	jsr dezhex
	jsr blank
	lda block+1
	sta dez
	jsr dezhex
	jsr up
r13	jmp mainloop
hexdez	ldx #0
loop5	lda text,y
	cmp #"a"
	bcs letter3
	sec
	sbc #"0"
	jmp hi2
letter3	sbc #"7"
hi2	sta temp,x
	iny
	inx
	cpx #2
	bcc loop5
	lda temp+1
	sta dez
	lda temp
	asl
	asl
	asl
	asl
	sta temp
	lda dez
	adc temp
	sta dez
	rts
dezhex	lda dez
	and #15
	sta temp
	lda dez
	lsr
	lsr
	lsr
	lsr
	sta temp+1
	lda temp
	cmp #10
	bcs letter
	adc #"0"
	sta temp+2
	jmp hi
letter	clc
	adc #"7"
	sta temp+2
hi	lda temp+1
	cmp #10
	bcs letter2
	adc #"0"
	sta temp+3
	jmp display
letter2	clc
	adc #"7"
	sta temp+3
display	lda temp+3
	jsr print
	lda temp+2
	jmp print
hexdump	ldy #0
loop11	lda block,x
	sta dez
	jsr dezhex
	inc count
	jsr blank
	cpx to
	bne wt
	lda #-1
	sta eflag
wt	inx
	iny
	cpy #8
	bcc loop11
	rts
ascdump	ldy #0
loop12	lda block,x
	sta dez
	jsr chartest
	jsr print
	lda #0
	sta quotflag
	sta rvsflag
	inx
	iny
	cpy #8
	bcc loop12
	rts
read	jsr bltest
	beq cont2
r7	jmp mistake
cont2	lda ct
	cmp #8
	bne r7
	ldy #2
	jsr hexdez
	sta track
	sta text+172
	ldy #5
	jsr hexdez
	sta sector
	sta text+173
	jsr tsr
	lda #"1"
	sta rtext+1
	jsr b
	jsr clrch
	ldx #$f
	jsr chkout
	jsr senduser
	jsr clrch
	ldx #8
	jsr chkin
	ldx #0
loop8	jsr input
	sta block,x
	inx
	bne loop8
	jsr clrch
	lda #8
	jsr close
	lda #-1
	sta rflag
	jmp mainloop
tsr	ldy #172
	jsr split
	lda text+175
	sta rtext+7
	lda text+176
	sta rtext+8
	ldy #173
	jsr split
	lda text+175
	sta rtext+10
	lda text+176
	sta rtext+11
	rts
split	lda #0
	sta text+174
	sta text+175
	sta text+176
	lda text,y
hundert	cmp #100
	bcc zehn
	sbc #100
	inc text+174
	bne hundert
zehn	lda text+174
	sta text+177
	jsr mal
	jsr mal
	lda text,y
	sec
	sbc text+177
ten	cmp #10
	bcc eins
	sbc #10
	inc text+175
	bne ten
eins	lda text+174
	sta text+177
	jsr mal
	jsr mal
	sta text+178
	lda text+175
	sta text+177
	jsr mal
	lda text,y
	sec
	sbc text+177
	sec
	sbc text+178
one	cmp #1
	bcc r6
	sbc #1
	inc text+176
	bne one
r6	ldy #2
loop6	lda text+174,y
	clc
	adc #"0"
	sta text+174,y
	dey
	bne loop6
	rts
mal	lda text+177
	asl
	asl
	clc
	adc text+177
	asl
	sta text+177
	rts
dts	lda rflag
	beq r8
	jsr nline
	lda #"w"
	jsr print
	jsr blank
	lda track
	sta dez
	jsr dezhex
	lda sector
	sta dez
	jsr blank
	jsr dezhex
	jsr up
r8	jmp mainloop
fill	lda rflag
	beq r10
	jsr bltest
	beq cont3
	jmp mistake
cont3	ldy #2
	jsr hexdez
	sta from
	ldy #5
	jsr hexdez
	sta to
	ldy #8
	jsr ascorhex
	lda dez
	ldx from
loop10	sta block,x
	cpx to
	bcs r10
	inx
	bne loop10
r10	jmp mainloop
ascorhex	lda text,y
	cmp #"A"
	beq asc
	jmp hexdez
asc	lda text+1,y
	sta dez
	iny
	iny
	rts
execute	lda rflag
	beq r29
	lda block
	bne r29
	lda ct
	cmp #2
	bne getadr
	lda block+2
	sta temp2
	lda block+3
	sta temp2+1
	jmp ex
getadr	lda ct
	cmp #7
	bne r28
	ldy #2
	jsr hexdez
	sta temp2+1
	jsr hexdez
	sta temp2
ex	lda block+1
	sta count
	ldy #0
exloop	lda block+4,y
	sta (temp2),y
	iny
	cpy count
	bcc exloop
	beq exloop
	jmp exit
r28	jmp mistake
r29	jmp mainloop
change	lda ct
	cmp #$26
	beq cm
	jmp mistake
cm	ldy #1
	jsr hexdez
	sta temp2
	lda zeile
	sta temp2+1
	iny
cloop	iny
	jsr ascorhex
	ldx temp2
	sta block,x
	inc temp2
	cpy #$1c
	bne cloop
	ldx temp2+1
	ldy #$1e
	clc
	jsr setcrsr
	lda temp2
	sec
	sbc #8
	tax
	jsr ascdump
	jmp mainloop
write	lda rflag
	beq r14
	lda ct
	cmp #2
	beq bw
	jsr bltest
	beq cont7
mis	jmp mistake
cont7	ldx ct
	cpx #8
	bne mis
	ldy #2
	jsr hexdez
	sta text+172
	ldy #5
	jsr hexdez
	sta text+173
	jsr tsr
bw	lda #"2"
	sta rtext+1
	jsr b
	ldx #15
	jsr chkout
	lda #<ptext
	ldy #>ptext
	jsr strout
	jsr clrch
	ldx #8
	jsr chkout
	ldx #0
wloop	lda block,x
	jsr print
	inx
	bne wloop
	jsr clrch
	ldx #15
	jsr chkout
	jsr senduser
	jsr clrch
	lda #8
	jsr close
r14	jmp mainloop
color	ldx colnr
	inx
	jsr ue
	jmp mainloop
ue	lda fab1,x
	bpl p
	ldx #0
	beq ue
p	stx colnr
	sta farb1
	lda fab2,x
	sta farb2
	lda fab3,x
	sta farb3
	jmp clrscr
tohex	lda ct
	cmp #9
	bcs miss
	jsr bltest
	bne miss
	lda chrptr
	pha
	lda chrptr+1
	pha
	lda #<text+2
	ldy #>text+2
	sta chrptr
	sty chrptr+1
	jsr frmnum
	jsr int
	jsr nline
	lda #"!"
	jsr print
	jsr blank
	lda lo+1
	sta dez
	jsr dezhex
	lda lo
	sta dez
	jsr dezhex
	pla
	sta chrptr+1
	pla
	sta chrptr
goup	jsr up
	jmp mainloop
todez	lda ct
	cmp #7
	bne miss
	jsr bltest
	bne miss
	jsr nline
	jsr dollar
	jsr blank
	ldy #2
	jsr hexdez
	pha
	jsr hexdez
	tax
	pla
	jsr lnprt
	jmp goup
miss	jmp mistake
r30	jmp mistake
eq	jmp ed
disass	lda rflag
	beq eq
	jsr bltest
	bne r30
	lda ct
	cmp #13
	bne r30
	ldy #2
	jsr hexdez
	sta pc+1
	jsr hexdez
	sta pc
	ldy #7
	jsr hexdez
	sta endpnt
	jsr nline
	ldy #10
	jsr hexdez
	sta endpnt+1
d	ldy endpnt
	sty dez
	jsr dezhex
	lda #"-"
	jsr print
	lda pc+1
	sta dez
	jsr dezhex
	lda pc
	sta dez
	jsr dezhex
	jsr blank
	ldy endpnt
	lda block,y
	tay
	sta dez
	jsr dezhex
	lda adr,y
	sty latch
	asl
	tay
	lda adrmod,y
	sta pnt
	lda adrmod+1,y
	sta pnt+1
	jmp (pnt)
next2	lda taste
	cmp #stop
	beq ed
	jsr nline
	jmp d
ed	jmp mainloop
no	ldy #8
	jsr bloop
	ldy #1
	jmp pcplusy
adp	jsr blank
	jsr op1a
	jsr blank
	jsr op2a
	ldy #2
	jsr bloop
	jmp blank
bloop	jsr blank
	dey
	bne bloop
	lda #":"
	jsr print
	jmp mnmpr
mnmpr	ldy latch
	lda txt,y
	tay
	lda mnm,y
	jsr print
	lda mnm+1,y
	jsr print
	lda mnm+2,y
	jmp print
op1a	ldy endpnt
	lda block+1,y
	sta dez
	jmp dezhex
op2a	ldy endpnt
	lda block+2,y
	sta dez
	jmp dezhex
ad	jsr dollar
	jsr op2a
	jmp op1a
oneop1	jsr oneop
	jsr dollar
	jmp op1a
pcplusy	ldx endpnt
	cpx endpnt+1
	bne pluslp
	beq ready
pluslp	inc pc
	bne co2
	inc pc+1
co2	inc endpnt
	dey
	bne pcplusy
	jmp next2
ready	jmp mainloop
oneop	jsr blank
	jsr op1a
	ldy #5
	jsr bloop
	jmp blank
direkt	jsr oneop
	lda #"#"
	jsr print
	jsr op1
plus2	ldy #2
	jmp pcplusy
zeropage	jsr oneop1
	jmp plus2
akku	ldy #8
	jsr bloop
	jsr blank
	lda #"A"
	jsr print
plus1	ldy #1
	jmp pcplusy
absolut	jsr adp
	jsr ad
plus3	ldy #3
	jmp pcplusy
zpx	jsr oneop1
	jsr kx
	jmp plus2
zpy	jsr oneop1
	jsr ky
	jmp plus2
absx	jsr adp
	jsr ad
	jsr kx
	jmp plus3
absy	jsr adp
	jsr ad
	jsr ky
	jmp plus3
idridz	jsr oneop
	jsr kauf
	jsr op1
	jsr kzu
	jsr ky
	jmp plus2
idzidr	jsr oneop
	jsr kauf
	jsr op1
	jsr kx
	jsr kzu
	jmp plus2
indirekt	jsr adp
	jsr kauf
	jsr ad
	jsr kzu
	jmp plus3
relativ	jsr oneop
	lda pc
	sta pnt
	lda pc+1
	sta pnt+1
	ldy endpnt
	iny
	lda block,y
	bmi back
	lda block,y
	clc
	adc #2
	tay
	jsr pntplusy
offout	jsr dollar
	lda pnt+1
	sta dez
	jsr dezhex
	lda pnt
	sta dez
	jsr dezhex
	jmp plus2
back	ldy #1
	jsr pntplusy
	lda #-1
	ldy endpnt
	iny
	sec
	sbc block,y
	tay
	jsr pntminusy
	jmp offout
pntplusy	inc pnt
	bne co
	inc pnt+1
co	dey
	bne pntplusy
	rts
pntminusy	lda pnt
	ldx pnt+1
miloop	sec
	sbc #1
	bcs nothi
	dex
nothi	dey
	bne miloop
	sta pnt
	stx pnt+1
	rts
op1	jsr dollar
	jmp op1a
put	lda rflag
	beq r15
	jsr bltest
	beq putting
	jmp mistake
putting	ldy #2
	jsr hexdez
	tax
	ldy #5
putloop	lda text,y
	cmp #cr
	beq r15
	sta block,x
	iny
	inx
	bne putloop
r15	jmp mainloop
number	lda ct
	cmp #2
	beq shownr
	cmp #5
	bne r17
	jsr bltest
	bne r17
	ldy #2
	jsr hexdez
	cmp #8
	bcc r17
	cmp #16
	bcs r17
	sta device
	bne r18
shownr	lda device
	sta dez
	jsr dezhex
	jmp mainloop
r18	jsr clrch
	lda #15
	jsr close
	jmp g
r20	pla
r17	jmp mistake
changenr	lda ct
	cmp #5
	bne r17
	jsr bltest
	bne r17
	ldy #2
	jsr hexdez
	pha
	cmp #8
	bcc r20
	cmp #16
	bcs r20
	sta device
	jsr clrch
	ldx #15
	jsr chkout
	ldy #0
mwloop	lda memwrite,y
	jsr print
	iny
	cpy #6
	bne mwloop
	pla
	pha
	ora #32
	jsr print
	pla
	ora #64
	jsr print
	jsr clrch
	jmp r18
hextoasc	jsr bltest
	bne r25
	jsr nline
	lda #"A"
	jsr print
	jsr blank
	lda #quote
	jsr print
	ldy #2
loop14	jsr hexdez
	jsr print
	lda text,y
	cmp #cr
	beq r24
	iny
	cpy #38
	bcc loop14
r24	lda #quote
	jsr print
r26	jsr up
	jmp mainloop
r25	jmp mistake
asctohex	jsr bltest
	bne r25
	lda #quote
	sta text+40
	cmp text+2
	bne r25
	jsr nline
	lda #"a"
	jsr print
	jsr blank
	ldy #3
loop13	lda text,y
	cmp #cr
	beq r26
	cmp #quote
	beq r26
	sta dez
	jsr dezhex
	jsr blank
	iny
	bne loop13
hunt	jsr bltest
	bne r22
	lda ct
	cmp #11
	bne r22
	lda rflag
	beq r21
	ldy #2
	jsr hexdez
	sta from
	ldy #5
	jsr hexdez
	sta to
	ldy #8
	jsr ascorhex
	sta temp2+2
	jsr lf
	ldy #0
	sty temp2
	sty temp+1
	ldy from
hloop	lda block,y
	cmp temp2+2
	bne chunt
	tya
	sta dez
	jsr dezhex
	jsr blank
	inc temp2
	bne chunt
	inc temp2+1
chunt	lda taste
	cmp #stop
	beq r21
	cpy to
	php
	iny
	plp
	bne hloop
	jsr nline
	lda temp2+1
	sta dez
	jsr dezhex
	lda temp2
	sta dez
	jsr dezhex
r21	jmp mainloop
r22	jmp mistake
block	.byt 0
